package com.gt.utils;

import org.apache.commons.lang3.StringUtils;
import org.slf4j.MDC;

import java.util.UUID;


/*
 * @功能说明：MDC工具
 * @作者： herun
 * @创建日期：2021/8/23
 * @版本号：V1.0
 */
public class TraceUtil {

    public final static String TRACE_ID = "trace_id";
    public final static String TRACE_URI = "uri";

    /**
     * 初始化 TraceId
     *
     * @param uri 请求uri
     */
    public static void initTrace(String uri) {
        if (StringUtils.isBlank(MDC.get(TRACE_ID))) {
            String uuid =  UUID.randomUUID().toString();
            uuid += PbUtils.getRandomString("0123456789", 5);
            MDC.put(TRACE_ID, uuid);
            MDC.put(TRACE_URI, uri);
        }
    }


    /**
     * 从 MDC 中清除当前线程的 Trace信息
     */
    public static void clearTrace() {
        MDC.clear();
    }

}
